package cartas;

import aima.search.framework.HeuristicFunction;

public class CartasHeuristicFunction implements HeuristicFunction{

	@Override
	public double getHeuristicValue(Object state) {
		
		CartasEstado estado = (CartasEstado) state;
		
		int h = 50;

		int valorTotal = 0;
		int[] cartas = new int[10];

		for (int i=0; i < estado.getNumCartas(); i++){
			cartas[estado.getCarta(i) - 1]++;
			valorTotal += estado.getCarta(i);
		}
		
		for (int i=0; i < 10; i++)
			if (cartas[i] > 1) h -= cartas[i];
		
		h -= (valorTotal / 15);
		
		h -= (15 - estado.getNumCartas())*3;
		
		return h;
	}

}
